Test Failed
Push — develop ( 424bfb...c8c23d )
by Endre
02:45
created

Manager   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 2
eloc 20
dl 0
loc 22
c 0
b 0
f 0
rs 10

1 Function

Rating   Name   Duplication   Size   Complexity  
A getTranslator 0 11 2
1
import ILoader from './ILoader';
2
import Translator from './Translator';
3
import TranslatorFactory from './Translator/Factory';
4
5
interface ITranslators {
6
  [languageCode: string]: Translator;
7
}
8
9
export default class Manager {
10
  protected loader: ILoader;
11
  protected translators: ITranslators;
12
  protected translatorFactory: TranslatorFactory;
13
14
  constructor(loader: ILoader, translatorFactory: TranslatorFactory) {
15
    this.loader = loader;
16
    this.translatorFactory = translatorFactory;
17
    this.translators = {}
18
  }
19
20
  public async getTranslator(languageCode: string) {
21
    if (this.translators.hasOwnProperty(languageCode)) {
22
      return this.translators[languageCode];
23
    }
24
25
    const languageData = await this.loader.loadLanguage(languageCode);
26
    const translator = this.translatorFactory.createTranslator(languageData);
27
    this.translators[languageCode] = translator;
28
29
    return translator;
30
  }
31
}